home *** CD-ROM | disk | FTP | other *** search
- /* Tutorial Script (Revised version) */
-
- //variables
- private INT t; //keeps track of how far player is in tutorial
- private INT n; //holds number of droids built
- public int startPower; //initial power level
-
-
- //level
- public LEVEL NextLev;
- //public INTMESSAGE MissionBrief;
-
- //components
- public SENSOR defaultSensor;
- public BODY viperBody;
- public BODY howitzerBody;
- public BODY missileBody;
- public BODY trikeBody;
- public BODY buggyBody;
- public BODY babaBody;
-
- public CONSTRUCT spade;
-
- // public ECM ecm;
-
- public PROPULSION wheeledProp;
- public PROPULSION trackProp;
- public PROPULSION babaProp;
-
- //tutorial specific
- public TEXTSTRING buildPowerGenMsg;
- //public DROIDID constructorDroid;
- private DROID selDroid; //selected droid
- public STRUCTURESTAT powerGen;
- public STRUCTURE commandCentre;
- public STRUCTURE factoryStruc, researchStruc;
-
- public TEXTSTRING increaseBuildRate;
-
- public STRUCTURESTAT oilDerrick;
- public TEXTSTRING buildResEx;
- public FEATURE res1;
- //public INTMESSAGE res1Msg;
- public TEXTSTRING scoutMsg;
-
- private FEATURE hiddenArtefact;
- public FEATURESTAT crate;
- public TEXTSTRING artefactFoundMsg;
- public TEXTSTRING artefactRecoverMsg;
- public int art1X, art1Y;
- public INTMESSAGE art1Msg;
-
- public TEXTSTRING buildResearchMsg;
- public STRUCTURESTAT research;
- public TEXTSTRING researchArteMsg;
-
- public RESEARCHSTAT artefact;
- public TEXTSTRING designMsg;
- public STRUCTURESTAT factory;
- public TEXTSTRING buildFactoryMsg;
-
- public TEXTSTRING buildDroidMsg;
- public TEXTSTRING assignDPMsg;
- public TEXTSTRING prodRunMsg;
-
- public TEXTSTRING wellDoneMsg;
-
- public WEAPON mg;
-
- //public TEXTSTRING factoryRPL;
- public TEXTSTRING tutorialWAV;
- public TEXTSTRING gameWAV;
-
- public TEXTSTRING des_msg0, des_msg1, des_msg2, des_msg3;
- public TEXTSTRING des_msg4, des_msg5, des_msg6, des_msg7;
- public TEXTSTRING bld_msg1;
-
- // audio
- public SOUND SND_CLICK_BUILD;
- public SOUND SND_USE_2ND_CONST1;
- public SOUND SND_USE_2ND_CONST2;
- public SOUND SND_USE_2ND_CONST3;
- public SOUND SND_BUILD_RES_EX1;
- public SOUND SND_BUILD_RES_EX2;
- public SOUND SND_BUILD_RES_EX3;
- public SOUND SND_BUILD_RES_EX4;
- public SOUND SND_SCOUT_TO_WEST;
- public SOUND SND_ARTIFACT_DIS;
- public SOUND SND_RECOVER_ART;
- public SOUND SND_BUILD_RES_1;
- public SOUND SND_BUILD_RES_2;
- public SOUND SND_BUILD_RES_3;
- public SOUND SND_RES_ART1;
- public SOUND SND_RES_ART2;
- public SOUND SND_RES_ART3;
- public SOUND SND_RES_ART4;
- public SOUND SND_DESIGN_WAR;
- public SOUND SND_BUILD_FAC1;
- public SOUND SND_BUILD_FAC2;
- public SOUND SND_BUILD_FAC3;
- public SOUND SND_MANU_WAR1;
- public SOUND SND_MANU_WAR2;
- public SOUND SND_MANU_WAR3;
- public SOUND SND_MANU_WAR4;
- public SOUND SND_SET_PROD1;
- public SOUND SND_SET_PROD2;
- public SOUND SND_SET_PROD3;
- public SOUND SND_SET_PROD4;
- public SOUND SND_BUILD_POWERGEN1;
- public SOUND SND_BUILD_POWERGEN2;
- public SOUND SND_BUILD_POWERGEN3;
- public SOUND SND_BUILD_POWERGEN4;
- public SOUND SND_BUILD_POWERGEN5;
- public SOUND SND_ASSIGN_DELPOINT;
- public SOUND SND_MISSION_SUCCESS;
-
- //proximity messages
- public SOUND SND_GEN_ART_HERE;
- public SOUND SND_RESO_HERE;
- public SOUND SND_DROIDS_REQ;
- public SOUND SND_FRIEND_LZ;
- public SOUND SND_ENEMY_LZ;
-
- //Design screen buttons
- public int NEWDESIGN_BUT, TURRET_BUT, BODY_BUT, PROP_BUT;
- public int WEAP_BUT, SYS_BUT, COMM_BUT;
-
- //triggers
- trigger droidSelTrig(CALL_DROID_SELECTED, ref selDroid);
- trigger droidHelpTrig((selDroid.order==DORDER_HELPBUILD), 5);
- trigger droidHelpTrig2((selDroid.order==DORDER_NONE), 5);
- trigger tutorialTrigger(every,10);
- trigger beingBuilt(structureBeingBuilt(powerGen, 0), 10);
- trigger derrickBeingBuilt(structureBeingBuilt(oilDerrick, 0), 10);
- trigger inRange(droidInRange(0, hiddenArtefact.x,hiddenArtefact.y, 384), 5);
- trigger nextTo(droidInRange(0, hiddenArtefact.x,hiddenArtefact.y, 171), 5);
- trigger researchBeingBuilt(structureBeingBuilt(research, 0), 10);
- trigger factoryBeingBuilt(structureBeingBuilt(factory, 0), 10);
-
- trigger runDone((n>=1), 10); //Only build one for now((n>=3), 10);
- trigger endVid(wait, 10); //changed for DEMO (CALL_VIDEO_QUIT);
- trigger droidDesigned(CALL_DROIDDESIGNED);
-
- /*
- trigger powGenBuilt(CALL_POWERGEN_BUILT);
- trigger resExBuilt(CALL_RESEX_BUILT);
- trigger researchBuilt(CALL_RESEARCH_BUILT);
- trigger researchDone(CALL_RESEARCHCOMPLETED);
- trigger droidDesigned(CALL_DROIDDESIGNED);
- trigger factoryBuilt(CALL_FACTORY_BUILT);
- trigger droidBuilt(CALL_DROIDBUILT);
- */
-
- trigger manurunTrig(CALL_MANURUN);
- trigger manulistTrig(CALL_MANULIST);
- trigger buildlistTrig(CALL_BUILDLIST);
- trigger buildgridTrig(CALL_BUILDGRID);
- trigger researchlistTrig(CALL_RESEARCHLIST);
- trigger desTrig(CALL_BUTTON_PRESSED, IDRET_DESIGN);
- trigger newdesTrig(CALL_BUTTON_PRESSED, NEWDESIGN_BUT);
- trigger turretTrig(CALL_BUTTON_PRESSED, TURRET_BUT);
- trigger turretTrig2(CALL_DESIGN_WEAPON);
- trigger bodyTrig(CALL_BUTTON_PRESSED, BODY_BUT);
- trigger bodyTrig2(CALL_DESIGN_BODY);
- trigger propTrig(CALL_BUTTON_PRESSED, PROP_BUT);
- trigger propTrig2(CALL_DESIGN_PROPULSION);
- trigger desQuit(CALL_DESIGN_QUIT);
- trigger prodrunTrig(CALL_BUTTON_PRESSED, IDRET_MANUFACTURE);
- trigger prodrunTrig2(not(structureIdle(factoryStruc)), 5);
- trigger researchartTrig(not(structureIdle(researchStruc)), 5);
-
- event researchArt3;
- //event productionRun2; //disabled until sorted
- //event productionRun3; //disabled until sorted
- event designWarDroid2;
- event designWarDroid3;
- event buildResearch2;
- event researchArt2;
- event buildFactory2;
- event manuDroid2;
-
- event initialisedEvent;
- event buildPowGen;
- event buildPowGen2;
- event buildPowGen3;
- event helpBuild;
- event helpBuild1;
- event helpBuild2;
- event helpBuild3;
- event buildDerrick;
- event scoutWest;
- event artFound;
- event buildResearch;
- event researchArt;
- event designWarDroid;
- event buildFactory;
- event manuDroid;
- //event productionRun; //disabled until sorted
- event endTutorial;
-
-
- event initialisedEvent(CALL_GAMEINIT)
- {
- //full briefing hard coded before script runs!!
- inTutorial=true;
- //centreView(commandCentre);
- centreViewPos(1472, 1984); //centre so can see HQ and Oil
- setRadarZoom(1);
- //setScrollParams(0, 0, 31, 31); //limit tutorial area of map
- //add short version of Mission briefing to list
- //addMessage(MissionBrief, CAMP_MSG, 0, false);
- gameLevel=0;
- //set up the reticule buttons
- //addReticuleButton(OPTIONS);
- addReticuleButton(CANCEL);
- //addReticuleButton(BUILD);
- removeReticuleButton(MANUFACTURE);
- removeReticuleButton(RESEARCH);
- removeReticuleButton(INTELMAP);
- removeReticuleButton(DESIGN);
- removeReticuleButton(BUILD);
- removeReticuleButton(OPTIONS);
- //set starting power
- setPowerLevel(startPower,0);
-
- //moved by kev to here from research completed
- makeComponentAvailable(viperBody, 0);
- makeComponentAvailable(spade, 0);
- makeComponentAvailable(wheeledProp, 0);
- makeComponentAvailable(mg, 0);
- setDefaultSensor(defaultSensor ,0);
-
- setStructureLimits(factory, 1, 0);
- setStructureLimits(oilDerrick, 1, 0);
- setStructureLimits(powerGen, 1, 0);
- setStructureLimits(research, 1, 0);
-
- // playCDAudio( 1 );
-
- setEventTrigger( buildDerrick, tutorialTrigger);
- setEventTrigger(initialisedEvent, inactive);
- }
-
-
- event buildDerrick(inactive)
- {
- t=0;
- enableStructure(oilDerrick,0);
- addConsoleText(buildResEx, 0);
- //addMessage(res1Msg, PROX_MSG, 0, false);
- pause(10); //pause(35);
- playSound(SND_BUILD_RES_EX1, 0);
- pause(30);
- if (t<1)
- {
- t=1;
- playSound(SND_BUILD_RES_EX2, 0);
- //pause(40);
- //playSound(SND_BUILD_RES_EX3, 0);
- }
- setEventTrigger(buildDerrick, inactive);
- }
-
- event buildDerrick2(CALL_DROID_SELECTED, ref selDroid)
- {
- setEventTrigger(buildDerrick2, inactive);
- pause(10);
- if (t<2)
- {
- t=2;
- playSound(SND_BUILD_RES_EX3, 0);
- }
- }
-
-
- event buildPowGen(CALL_RESEX_BUILT)
- {
- //removeMessage(res1Msg, PROX_MSG, 0);
- //selectDroidByID(constructorDroid, 0);
- pause(30);
- addConsoleText(buildPowerGenMsg, 0);
- playSound(SND_BUILD_RES_EX4, 0);
- pause(50);
- if (t<11)
- {
- t=11;
- playSound(SND_BUILD_POWERGEN2, 0);
- pause(20);
- addReticuleButton(BUILD);
- //flash the build reticule????????
- flashOn(IDRET_BUILD);
- enableStructure(powerGen,0);
- setEventTrigger(buildPowGen2, buildlistTrig); //To prevent early double clicking!!
- }
- setEventTrigger(buildPowGen, inactive);
- }
-
- event buildPowGen2(inactive)
- {
- flashOff(IDRET_BUILD);
- pause(10);
- if (t<13)
- {
- t=13;
- playSound(SND_BUILD_POWERGEN4, 0);
- setEventTrigger(buildPowGen3, buildgridTrig); //To prevent early double clicking!!
- }
- setEventTrigger(buildPowGen2, inactive);
- }
-
- event buildPowGen3(inactive)
- {
- pause(10);
- if (t<14)
- {
- t=14;
- playSound(SND_BUILD_POWERGEN5, 0);
- }
- setEventTrigger(helpBuild, beingBuilt);
- setEventTrigger(buildPowGen3, inactive);
- }
-
-
- event helpBuild(inactive)
- {
- addConsoleText(increaseBuildRate, 0);
- pause(10); //pause(30);
- if (t<15)
- {
- t=15;
- playSound(SND_USE_2ND_CONST1, 0);
- setEventTrigger(helpBuild1, droidSelTrig);
- pause(35);
- }
- setEventTrigger(helpBuild, inactive);
- }
-
- event helpBuild1(inactive)
- {
- //only when droid selected
- if (t<17)
- {
- setEventTrigger(helpBuild2, droidHelpTrig2);
- }
- setEventTrigger(helpBuild1, inactive);
- }
-
- event helpBuild2(inactive)
- {
- //only if selected droid is idle!!
- pause(10);
- if (t<17)
- {
- t=17;
- playSound(SND_USE_2ND_CONST2, 0);
- setEventTrigger(helpBuild3, droidHelpTrig);
- }
- setEventTrigger(helpBuild2, inactive);
- }
-
- event helpBuild3(inactive)
- {
- //ordered to help build??????
- pause(10);
- if (t<18)
- {
- t=18;
- pause(20);
- playSound(SND_USE_2ND_CONST3, 0);
- }
- setEventTrigger(helpBuild3, inactive);
- }
-
-
- event scoutWest(CALL_POWERGEN_BUILT)
- {
- t=20;
- addConsoleText(scoutMsg, 0);
- //addMessage(art1Msg, PROX_MSG, 0, false);
- pause(30); //pause(35);
- playSound(SND_SCOUT_TO_WEST, 0);
- pause(30); //pause(35);
- hiddenArtefact = addFeature(crate, art1X, art1Y);
- setEventTrigger(artFound, inRange);
- setEventTrigger(scoutWest, inactive);
- }
-
- event artFound(inactive)
- {
- t=30;
- addConsoleText(artefactRecoverMsg, 0);
- enableResearch(artefact, 0);
- pause(10); //pause(35);
- playSound(SND_RECOVER_ART, 0);
- setEventTrigger(buildResearch, nextTo);
- setEventTrigger(artFound, inactive);
- }
-
- event buildResearch(inactive)
- {
- //removeMessage(art1Msg, PROX_MSG, 0);
- destroyFeature(hiddenArtefact);
- enableStructure(research,0);
- addConsoleText(buildResearchMsg, 0);
- // pause(30); //pause(35);
- // if (t<40)
- // {
- // t=40;
- // playSound(SND_ARTIFACT_DIS, 0);
- // //setEventTrigger(researchArt, researchBuilt);
- // }
- pause(10);
- if (t<41)
- {
- t=41;
- playSound(SND_CLICK_BUILD, 0);
- setEventTrigger(buildResearch2,buildlistTrig);
- //flash the build reticule
- flashOn(IDRET_BUILD);
- }
- setEventTrigger(buildResearch, inactive);
- }
-
- event buildResearch2(inactive)
- {
- //build icon selected?
- flashOff(IDRET_BUILD);
- pause(10);
- if (t<42)
- {
- t=42;
- playSound(SND_BUILD_RES_2, 0);
- }
- setEventTrigger(buildResearch2, inactive);
- }
-
- event researchInProg(researchBeingBuilt)
- {
- //being built?
- pause(10);
- if (t<43)
- {
- t=43;
- playSound(SND_BUILD_RES_3, 0);
- }
- setEventTrigger(researchInProg, inactive);
- }
-
- event researchArt(CALL_RESEARCH_BUILT)
- {
-
- researchStruc=getStructure(research, 0); //get factory ID so can test later!
- addConsoleText(researchArteMsg, 0);
- pause(30); //pause(35);
- if (t<50)
- {
- t=50;
- playSound(SND_RES_ART2, 0);
- pause(20);
- addReticuleButton(RESEARCH);
- //setEventTrigger(designWarDroid, researchDone);
- setEventTrigger(researchArt2, researchlistTrig);
- //flash the research reticule
- flashOn(IDRET_RESEARCH);
- }
- setEventTrigger(researchArt, inactive);
- }
-
- event researchArt2(inactive)
- {
- //research icon selected
- flashOff(IDRET_RESEARCH);
- pause(10);
- if (t<51)
- {
- t=51;
-
- playSound(SND_RES_ART3, 0);
- setEventTrigger(researchArt3, researchartTrig);
- }
- setEventTrigger(researchArt2, inactive);
- }
-
- event researchArt3(inactive)
- {
- //artifact selected?????
- pause(10);
- if (t<52)
- {
- t=52;
- playSound(SND_RES_ART4, 0);
- }
- setEventTrigger(researchArt3, inactive);
- }
-
- event designWarDroid(CALL_RESEARCHCOMPLETED)
- {
- addConsoleText(designMsg, 0);
- //makeComponentAvailable(mg, 0); //already done at start!
- pause(30);
- if (t<60)
- {
- t=60;
- playSound(SND_DESIGN_WAR, 0);
- pause(20);
- addReticuleButton(DESIGN);
- //flash the research reticule
- flashOn(IDRET_DESIGN);
- setEventTrigger(designWarDroid2, desTrig);
- //setEventTrigger(buildFactory, droidDesigned);
- }
- setEventTrigger(designWarDroid, inactive);
- }
-
- event designWarDroid2(inactive)
- {
- addConsoleText(des_msg0, 0);
- //playSound to go here
- setEventTrigger(designWarDroid3, droidDesigned);
- setEventTrigger(designWarDroid2, inactive);
- t=61;
- flashOff(IDRET_DESIGN);
- }
-
- event design1(newdesTrig)
- {
- addConsoleText(des_msg1, 0); //choose Weapon
- //playSound to go here
- setEventTrigger(design1, inactive);
- }
-
- event design2(turretTrig)
- {
- addConsoleText(des_msg2, 0);
- //playSound to go here
- setEventTrigger(design2, inactive);
- }
-
- event design3(turretTrig2)
- {
- addConsoleText(des_msg3, 0); //choose Body
- //playSound to go here
- setEventTrigger(design3, inactive);
- }
-
- event design4(bodyTrig)
- {
- addConsoleText(des_msg4, 0);
- //playSound to go here
- setEventTrigger(design4, inactive);
- }
-
- event design5(bodyTrig2)
- {
- addConsoleText(des_msg5, 0); //choose Propulsion
- //playSound to go here
- setEventTrigger(design5, inactive);
- }
-
- event design6(propTrig)
- {
- addConsoleText(des_msg6, 0);
- //playSound to go here
- setEventTrigger(design6, inactive);
- }
-
- event design7(propTrig2)
- {
- addConsoleText(des_msg7, 0); //finished design
- //flashOn(CANCEL); //this doesn't flash
- flashOn(MANUFACTURE); //use this instead
- flashOn(RESEARCH);
- flashOn(OPTIONS);
- flashOn(INTELMAP);
- flashOn(DESIGN);
- flashOn(BUILD);
-
- //playSound to go here
- setEventTrigger(design7, inactive);
- }
-
- event designWarDroid3(inactive)
- {
- setEventTrigger(buildFactory, desQuit);
- setEventTrigger(designWarDroid3, inactive);
- t=62;
- }
-
- event buildFactory(CALL_DROIDDESIGNED)
- {
- //flashOff(CANCEL);
- flashOff(MANUFACTURE); //use this instead
- flashOff(RESEARCH);
- flashOff(OPTIONS);
- flashOff(INTELMAP);
- flashOff(DESIGN);
- flashOff(BUILD);
-
- //no longer in design screen and droid designed
- enableStructure(factory,0);
- addConsoleText(buildFactoryMsg, 0);
- pause(10);
- if (t<70)
- {
- t=70;
- playSound(SND_BUILD_FAC1, 0);
- playSound(SND_BUILD_FAC2, 0);
- setEventTrigger(buildFactory2, buildlistTrig);
- //flash the build reticule
- flashOn(IDRET_BUILD);
- //setEventTrigger(manuDroid, factoryBuilt);
- }
- setEventTrigger(buildFactory, inactive);
- }
-
- event buildFactory2(inactive)
- {
- //build icon selected
- flashOff(IDRET_BUILD);
- pause(10);
- if (t<71)
- {
- t=71;
- playSound(SND_BUILD_FAC3, 0);
- }
- setEventTrigger(buildFactory2, inactive);
- }
-
- event moveAssPoint(factoryBeingBuilt)
- {
- pause(10); //pause(35);
- if (t<=80)
- {
- t=80;
- addConsoleText(assignDPMsg, 0); //same as build a droid!
- playSound(SND_ASSIGN_DELPOINT, 0);
-
- }
- setEventTrigger(moveAssPoint, inactive);
- }
- event manuDroid(CALL_FACTORY_BUILT)
- {
- factoryStruc=getStructure(factory, 0); //get factory ID so can test later!
- pause(30);
- if (t<90)
- {
- t=90;
- addConsoleText(buildDroidMsg, 0);
- pause(10);
- playSound(SND_MANU_WAR2, 0);
- pause(10);
- addReticuleButton(MANUFACTURE);
- setEventTrigger(manuDroid2, manulistTrig);
- //flash the manufacture reticule
- flashOn(IDRET_MANUFACTURE);
- }
- setEventTrigger(manuDroid, inactive);
- }
-
- //extra event to give player feedback that hit correct button
- //a wav would be nice also
- event buildFeedback(inactive)
- {
- addConsoleText(bld_msg1, 0);
- setEventTrigger(buildFeedback, inactive);
- }
-
- event manuDroid2(inactive)
- {
- //manufacture icon selected
- flashOff(IDRET_MANUFACTURE);
- pause(10);
- if (t<91)
- {
- t=91;
- playSound(SND_MANU_WAR3, 0);
- }
- setEventTrigger(buildFeedback, prodrunTrig2);
- setEventTrigger(manuDroid2, inactive);
- }
-
- /* Disabled until this is sorted out
- event productionRun (CALL_DROIDBUILT)
- {
- addConsoleText(prodRunMsg, 0);
- pause(20);
- if (t<100)
- {
- t=100;
- playSound(SND_SET_PROD2, 0);
- setEventTrigger(productionRun2, manurunTrig);
- }
- setEventTrigger(productionRun, inactive);
- }
-
-
- event productionRun2 (inactive)
- {
- //production run slider set >1
- pause(10);
- if (t<102)
- {
- t=102;
- playSound(SND_SET_PROD4, 0);
- setEventTrigger(productionRun3, prodrunTrig2);
- }
- setEventTrigger(productionRun2, inactive);
- }
- event productionRun3 (inactive)
- {
- //droid selected
- pause(20);
- if (t<=103)
- {
- t=103;
- playSound(SND_SET_PROD3, 0);
- }
- setEventTrigger(productionRun3, inactive);
- }
- */
-
- event loadNextLev(inactive)
- {
- setEventTrigger(loadNextLev, inactive);
- addReticuleButton (INTELMAP);
- addReticuleButton (OPTIONS);
- setStructureLimits (powerGen,5,0);
- setStructureLimits (oilDerrick,100,0);
- setStructureLimits (research,5,0);
- setStructureLimits (factory,5,0);
- addConsoleText(wellDoneMsg, 0);
- pause(10);
- playSound(SND_MISSION_SUCCESS, 0);
- pause(50);
- tutorialEnd();
- gameOver(true);
- //gameLevel=1; //flag next map scripts available
- //startMission(CAMP_EXPAND, NextLev);
-
- }
-
- event endTutorial(runDone)
- {
- t=110;
- pause(20); //wait for speech
- setEventTrigger(endTutorial, inactive);
- setEventTrigger(loadNextLev, endVid);
- //playVideo(factoryRPL,0); //play factory sequence
- }
-
-
- event loadGames(CALL_MISSION_START) //cheat button ctrl M
- {
- //playSound(SND_ERAD_SCAVANGERS, 0);
- makeComponentAvailable(viperBody, 0);
- makeComponentAvailable(spade, 0);
- makeComponentAvailable(wheeledProp, 0);
- makeComponentAvailable(mg, 0);
- n=4;
- //setEventTrigger(endTutorial, runDone);
- setEventTrigger(loadGames, inactive);
- }
-
- event numDroids(CALL_DROIDBUILT)
- {
- n=n+1;
- }
-